# -*- coding: UTF-8 -*-
from Tkinter import *
from PlancheDeJeu.VuePlancheDeJeu import *
from Chat.VueChat import *
from Philippe import *
import tkSimpleDialog as tks

try:
    from wPIL import Image, ImageTk, ImageOps
except ImportError:
    try:
        from PIL import Image, ImageTk, ImageOps
    except ImportError:
        import sys
        import tkMessageBox
        tkMessageBox.showwarning("Erreur", "S.V.P. Installez PIL pour jouer sur ce système d'exploitation")
        sys.exit()

class VueChoixMiniJeux(Frame):
    def __init__(self, controleur, w, h, chosenOne = False):
        self.sizeImages=(150,150)
        padx = (w-self.sizeImages[0]*2-40)/2
        pady = (h-self.sizeImages[1]*2-55)/2
        if chosenOne:
            Frame.__init__(self, padx=padx, pady = pady, width=w, height=h)
        else:
            Frame.__init__(self, width=w, height=h)
        self.grid_propagate(0)
        self.w = w
        self.h = h
        self.controleur = controleur
        self.menuMiniJeuActif = False
        self.miniJeuSelected = 0
        
        #Load les images pour les mini-jeux
        self.imageLab=Image.open("../images/frogLab.png")
        self.imageShooter=Image.open("../images/frogShooter.png")
        self.imageDance=Image.open("../images/frogDance.png")
        self.imageMouche=Image.open("../images/frogMouche.png")
        
        self.tableauImages=[]
        self.tableauImages.append(self.imageLab)
        self.tableauImages.append(self.imageShooter)
        self.tableauImages.append(self.imageDance)
        self.tableauImages.append(self.imageMouche)

        self.tableauImagesTk=[]

        for i in self.tableauImages:
            i=i.convert("RGBA")
            i=i.resize(self.sizeImages, Image.ANTIALIAS)
            self.tableauImagesTk.append(ImageTk.PhotoImage(i))
        
        if(chosenOne):
            self.menuMiniJeuActif = True
            self.after(10, self.afficherMenuMiniJeu)
        else:
            self.afficherAttenteMiniJeu()
            
        
            
    def afficherAttenteMiniJeu(self):
        canvas = Canvas(self, width=self.w, height=self.h)
        canvas.pack(side=TOP)
        canvas.create_text(self.w/2, self.h/2-10,text=str("En attente du choix de"), font=('Helvetica', 12))
        canvas.create_text(self.w/2, self.h/2+10,text=str(self.controleur.getChosenOneName()), font=('Helvetica', 16))

    def afficherMenuMiniJeu(self):
        """ Cette méthode affiche une sélection pour la race 
        du joueur numéro {n}. La liste de choix est {listeRaces}. """
        self.listeMJ = self.controleur.getListeMiniJeux()
        win = self
        Label(win,  text="Quel mini-jeu désirez-vous choisir?").grid(row=0, column=0, columnspan=2) 
        b=Button(win, activebackground='black', bd=0, image=self.tableauImagesTk[0], bg='black', command= lambda  : self.setMiniJeuSelected("FrogLab"),width=self.sizeImages[0] )
        b.grid(row=1, column=0, sticky=S+W, padx=10, pady=10)
        b=Button(win, activebackground='black', bd=0, image=self.tableauImagesTk[1], bg='black', command= lambda  : self.setMiniJeuSelected("FrogShooter"),width=self.sizeImages[0] )
        b.grid(row=1, column=1, sticky=S+E, padx=10, pady=10)
        b=Button(win, activebackground='black', bd=0, image=self.tableauImagesTk[2], bg='black', command= lambda  : self.setMiniJeuSelected("FrogDance"), width=self.sizeImages[0])
        b.grid(row=2, column=0, sticky=N+E, padx=10, pady=10)
        b=Button(win, activebackground='black', bd=0, image=self.tableauImagesTk[3], bg='black', command= lambda  : self.setMiniJeuSelected("FrogMouches"), width=self.sizeImages[0])
        b.grid(row=2, column=1, sticky=N+W, padx=10, pady=10)
        """
        self.listbox = Listbox(win)
        self.listbox.pack()
        for mj in self.listeMJ:
            self.listbox.insert(END, mj)
        self.listbox.select_set(0)
        
        Button(win, text='OK', command=self.setMiniJeuSelected).pack()"""


    def setMiniJeuSelected(self, nom):
        self.miniJeuSelected = nom

        self.menuMiniJeuActif = False